截止2019年初,WSL 系统虽然仍旧有些麻烦,但是目前基本可以使用了。
安装
按照微软的文档,需要以管理员身份在 PowerShell 中执行如下命令:
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
然后重新启动系统,就可以在 Microsoft Store 中安装了,建议安装 Kali Linux,滚动升级,避免了维护上的一些麻烦。
终端
WSL 终端窗口的缺省配置惨不忍睹,需要对配色和字体进行必要的修改。
配色方面可以使用 Windows Console Colortool 来修改,具体可以参照这个介绍和命令行的帮助,具体的命令需要在 PowerShell 下执行。
字体方面,截止2019年初,Windows Console 无法修改字体的问题仍旧没有解决,好在可以利用 YaHei Consolas Hybrid 1.12 For Powerline.ttf 这种 hybrid 字体解决。
2019年6月初,微软最新开发的 Windows Terminal 的预览版已经在其应用商店上线,其功能比较初级,配置文件需要直接修改 profile.json 文件,好在其配置属性比较直观,仅需要注意的是 WSL 相关的 profile 中 "commandline" : "wsl.exe -d kali-linux" 之类的启动命令需要修改为 "wsl.exe ~ -d kali-linux" ,这样启动后才能正确进入用户的主目录。
SSH-Agent
关于 SSH-Agent 的问题,可以利用 Win10 自带的 OpenSSH 和 ssh-agent-wsl 相互配合来解决。
首先需要在将 OpenSSH Authentication Agent 服务的启动类型设置为自动。
然后下载 ssh-agent-wsl 并解压缩,将 ssh-agent-wsl 拷贝到 Linux 系统下类似 ~/bin 目录方便执行,将 pipe-connector.exe 拷贝到 Windows 下的类似 /mnt/c/Windows/System32 目录,并且在 shell 的登录配置文件中增加如下内容:
# https://github.com/rupor-github/ssh-agent-wsl
eval "\$(ssh-agent-wsl -r -H /mnt/c/Windows/System32/pipe-connector.exe)" > /dev/null
这样就可以使用 SSH-Agent 了。在使用中需要注意的是,win10 的 ssh-agent 把私钥存储在注册表里,所以不支持 ssh-add -t 选项,并且重启系统后私钥仍旧不会清除,建议通过 ssh-add -D 删除,详情可以参考这篇文章。
X Server
对于 X Server 的问题,可以通过 Windows 下安装 VcXsrv 来解决,需要在 Linux 中配置如下环境变量:
export DISPLAY=localhost:0.0
注意其中的 localhost 不可少,以免无法通过 SSH 来对远程的程序进行 X Forwarding。
对于 VcXsrv 的登录后自动启动,需要将其配置文件 config.xlaunch 拷贝到如下目录中:
C:\Users\<username>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
其中 username 为 Windows 的用户名。
docker
安装 Windows 版本的 docker,运行 Linux container,并且选择 General => Expose daemon on tcp://localhost:2375 without TLS。在 Linux 下设置如下环境变量,就可以正常使用了。
export DOCKER_HOST=tcp://0.0.0.0:2375
其他问题
针对偶发的开机后启动 Linux 报错的情况,可以通过重启 LxssManager 服务解决。
另外,如需要执行 PS1 脚本,则需要以管理员身份运行 PowerShell,然后执行如下命令:
> Set-ExecutionPolicy RemoteSigned
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。